package com.rabbitmq.client;

/**
 * Enum for built-in exchange types.
 */
public enum BuiltinExchangeType {
    // 直接模式，该模式主要是利用路由键（routing key），交换机通过该键连接对应的队列将信息放入对应的队列中
    DIRECT("direct"),

    // 广播
    FANOUT("fanout"),

    // 主题模式，是direct的扩展，允许routing key使用* 和 # 作为通配符
    TOPIC("topic"),

    // 该模式不使用routing key而是使用键值对的匹配方式来实现交换机和队列的匹配
    // 性能较差
    HEADERS("headers");

    private final String type;

    BuiltinExchangeType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }
}
